The present invention relates generally to the processing of data matrices of various kinds, including the processing of data matrices to perform any of a variety of practical applications.
To implement any of a variety of practical applications, matrices of assembled data must be processed on an ongoing basis. For the purpose of the discussion which is to follow, a data-receiving "matrix" is defined to include any established array for receiving data input from an appropriate source, either for storage in memory or for further processing. Primarily, the improvements of the present invention will be discussed in conjunction with the processing of video images in matrix form. However, it is to be understood that other matrices that are similarly handled will equally benefit from, and should be considered part of the improvements of the present invention.
In assembling such images, signals are conventionally derived from an appropriate transducer (e.g., a CCD, infrared or other camera) and the acquired images are converted to matrices of data which are generally defined as a regular array of points or elements (i.e., pixels). Some form of processing is then required to display the acquired images in a format that is useful to a particular endeavor. Traditionally, this requires significant amounts of memory, to store the acquired images so that they can be processed, as well as a significant amount of processing (including accessing, moving and manipulating the data), to yield perceptible images useful in conveying the information that is desired. As an example, an image displayed on a relatively basic black-and-white monitor can be represented as a matrix consisting of 10,240 (128.times.80) pixels, where each pixel can exhibit one of 256 available brightness levels. Additional complexity can result when using larger matrices, or an increased number of brightness levels (or representations of color).
An intrinsic part of images acquired with available equipment is a certain degree of "noise" (i.e., a spurious signal in the image being processed). As the intensity (brightness) of an image diminishes, such noise can take on significance relative to the useful image to be acquired. The sensitivity of the resulting system, i.e., its ability to differentiate between signal and noise, therefore becomes an important and often limiting factor. A variety of steps have therefore been taken to increase the sensitivity of available image acquisition systems by increasing the ratio of the received signal to the background noise (i.e., the signal-to-noise ratio). The result is an improved image, for purposes of analysis and display, but usually at the cost of capacity (either memory and/or time).
To improve sensitivity, it is common practice to digitally process the images that are acquired, to improve their signal-to-noise ratio. This is accomplished by performing various mathematical operations on each pixel of each acquired image. Generally speaking, two such methods are employed including spatial filtration and temporal filtration. Spatial filtration is accomplished by replacing each pixel with a mean value derived from a selected number of adjacent (nearest) elements of the defined matrix. Temporal filtration is accomplished by replacing each pixel with a time average derived for a given pixel (with the same coordinates). In either case, the averaging that is performed operates to preserve data and reduce the effects of noise, increasing the system's signal-to-noise ratio, and accordingly, increasing the system's sensitivity.
However, as previously indicated, such processing is subject to limitation in terms of memory (including both storage and movements of the acquired data) and the amount of time that is required to perform the averaging that is necessary (including a variety of mathematical operations). As the number of sampling points (N) increases, in order to increase the sensitivity of the system, the number of processing steps required to access, move and computationally process the data rapidly becomes prohibitive. Often, this constitutes a limiting factor in the processing of such matrices of data.
For this reason, and as practical applications became more and more demanding, the systems developed to accommodate such data became correspondingly complex, both in terms of their size and their dedicated processing capabilities. This has proceeded to the extent that present demands can often limit desirable applications to all but the most complex, and therefore expensive, of apparatus. The alternative was often a sacrifice in either speed or sensitivity, and at times in both. As a result, many applications became prohibitive in terms of equipment and cost, limiting their potential for broad-based use. In some cases, this even prevented potentially useful applications from being implemented on any reasonable scale. It therefore remained to devise a system less subject to such limitations.